ref: ici la reference de la base de travail Python
- Ceci dans la logiciel de code VS Code :
- création et execution du fichier : class-waiter_init.py
# Create a class called Waiter with the following attributes:
# création d'une class Waiter avec un attribut de class //tables// qui est une liste vide (crochet sans rien à l'interieur)
class Waiter:
tables = []
# utilisation de l'instance de la class Waiter pour créer deux objets Gilles et Raoul :
Gilles = Waiter()
Raoul = Waiter()
Gilles.tables = [4, 5, 6]
Raoul.tables = [1, 2]
# affichage des résultats de l'attribut de class tables pour chaque instance de la classe Waiter
print("Gilles is responsible for tables:", Gilles.tables)
print("Raoul is responsible for tables:", Raoul.tables)
print("Waiter class tables attribute:", Waiter.tables)
class Waiter_error:
tables_error = []
Johan = Waiter_error()
# append permet d'ajouter un élément à la fin de la liste. Ici, on ajoute le nombre 8 à la liste tables de l'instance Gilles.
Johan.tables_error.append(7)
# affichage des résultats de l'attribut de class tables_error pour chaque instance de la classe Waiter_error
print("Johan is responsible for tables:", Johan.tables_error)
# resultat attendu : car c'est une class de construction : Waiter_error class tables_error attribute: []
print("Waiter_error class tables_error attribute:", Waiter_error.tables_error)
# pour evité cette erreur on utilisera __init__ pour créer un attribut d'instance au lieu d'un attribut de classe.
# Cela permettra à chaque instance de la classe Waiter d'avoir sa propre liste de tables, évitant ainsi que les instances partagent la même liste.
# Create a class called Waiter with the following attributes:
class Waiter:
# creation d'une méthode spéciale __init__ qui est appelée automatiquement lors de la création d'une instance de la classe Waiter.
def __init__(self):
self.tables = []
# rappel les indentations en Python permettent de définir les blocs de code et la portée des variables.
# rappel le code indenté est donc le programme de la fonction ou de la classe, et le code non indenté est en dehors de cette portée.
# utilisation de l'instance de la class Waiter pour créer deux objets Gilles et Raoul :
Gilles = Waiter()
Raoul = Waiter()
Raoul.tables.append(5)
Gilles.tables.append(10)
print(Raoul.tables) # Output: [5]
print(Gilles.tables) # Output: [10]
Programme : # COM sur le script : methode __init__ pour créer un attribut d'instance au lieu d'un attribut de classe. Cela permettra à chaque instance de la classe Waiter d'avoir sa propre liste de tables, évitant ainsi que les instances partagent la même liste. utilisation de fonction, création d'objets, POO (Programation Orientée Objet), méthode __init__, .
Code fichier Python Code fichier Python